package me.sunpeng.volatiles;

/**
 * @author sp
 */
public class VolatileSeeDemo {

    public static <T> T read(Integer a) {
        return (T) a;
    }

    //    static boolean flag = true;
    static volatile boolean flag = true;

    public static void main(String[] args) {


        String read = read(1);
        System.out.println(read);
        String read1 = VolatileSeeDemo.<String>read(1);

        Object read2 = VolatileSeeDemo.<Object>read(1);
//        new Thread(() -> {
//            System.out.println(Thread.currentThread().getName() + "\t -----come in");
//            while (flag) {
//
//            }
//            System.out.println(Thread.currentThread().getName() + "\t ----flag被设置为false in");
//        }, "t1").start();
//
//        try {
//            TimeUnit.MILLISECONDS.sleep(2000);
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }
//        flag = false;
//        System.out.println(Thread.currentThread().getName() + "\t 修改完成");


    }
}
